﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using SGTD.Entidades;

namespace SGTD.DAO
{
    public class clsFichaTramiteDocumentoDAO
    {
        public List<clsFichaTramiteDocumento> ListarFichaTD(String dni)
        {

            SqlCommand objcmd = new SqlCommand("FichaTDoc_Listar_PA");

            objcmd.CommandType = System.Data.CommandType.StoredProcedure;

            objcmd.Parameters.Add(new SqlParameter("@dni", dni));

            objcmd.Connection = clsConexion.ObtenerConexion();
            List<clsFichaTramiteDocumento> objListaDoc = new List<clsFichaTramiteDocumento>();
            try
            {
                SqlDataReader objDr = objcmd.ExecuteReader();
                if (objDr.HasRows)
                {
                    while (objDr.Read())
                    {
                        clsFichaTramiteDocumento objFichaTDoc = new clsFichaTramiteDocumento();
                        objFichaTDoc.FichaTramite = new clsFichaTramite { IdFichaTramite = Convert.ToInt32(objDr["IdFichaTramite"])};
                        objFichaTDoc.Documento = new clsDocumento { IdDocumento = Convert.ToInt32(objDr["IdDocumento"]) };

                        objFichaTDoc.FechaCarga = Convert.ToDateTime(objDr["FechaCarga"]);
                        objFichaTDoc.Adjunto = Convert.ToString(objDr["Adjunto"]);
                        objFichaTDoc.Asunto = Convert.ToString(objDr["Asunto"]);
                        objFichaTDoc.Area = new clsArea { IdArea = Convert.ToInt32(objDr["IdArea"]) };
                        objFichaTDoc.Especificaciones = Convert.ToString(objDr["Especificaciones"]);
                        objFichaTDoc.Urgente = Convert.ToBoolean(objDr["Urgente"]);
                        objListaDoc.Add(objFichaTDoc);
                    }
                    objDr.Close();
                }
            }
            catch (SqlException sql) { throw sql; }

            finally
            {
                objcmd.Connection.Close();
            }

            return objListaDoc;
        }


        public List<clsFichaTramiteDocumento> ListarDetalleFTD(Int32 idFicha, Int32 idDoc)
        {

            SqlCommand objcmd = new SqlCommand("Detalle_FichaTDoc_PA");

            objcmd.CommandType = System.Data.CommandType.StoredProcedure;

            objcmd.Parameters.Add(new SqlParameter("@idficha", idFicha));
            objcmd.Parameters.Add(new SqlParameter("@iddoc", idDoc));

            objcmd.Connection = clsConexion.ObtenerConexion();
            List<clsFichaTramiteDocumento> objListaDoc = new List<clsFichaTramiteDocumento>();
            try
            {
                SqlDataReader objDr = objcmd.ExecuteReader();
                if (objDr.HasRows)
                {
                    while (objDr.Read())
                    {
                        clsFichaTramiteDocumento objFichaTDoc = new clsFichaTramiteDocumento();
                        objFichaTDoc.FichaTramite = new clsFichaTramite { IdFichaTramite = Convert.ToInt32(objDr["IdFichaTramite"]) };
                        objFichaTDoc.Documento = new clsDocumento { IdDocumento = Convert.ToInt32(objDr["IdDocumento"]) };
                        objFichaTDoc.Documento.TipoDocumento = new clsTipoDocumento { Nombre = Convert.ToString(objDr["Nombre"]) };


                        objFichaTDoc.FechaCarga = Convert.ToDateTime(objDr["FechaCarga"]);
                       // objFichaTDoc.Adjunto = Convert.ToString(objDr["Adjunto"]);
                        objFichaTDoc.Asunto = Convert.ToString(objDr["Asunto"]);
                        objFichaTDoc.Area = new clsArea { IdArea = Convert.ToInt32(objDr["IdArea"]) };
                        objFichaTDoc.Area = new clsArea { NombreArea = Convert.ToString(objDr["NombreArea"]) };
                        objFichaTDoc.EstadoEntrega = Convert.ToString(objDr["EstadoEntrega"]);
                       // objFichaTDoc.Especificaciones = Convert.ToString(objDr["Especificaciones"]);
                      //  objFichaTDoc.Urgente = Convert.ToBoolean(objDr["Urgente"]);
                        objListaDoc.Add(objFichaTDoc);
                    }
                    objDr.Close();
                }
            }
            catch (SqlException sql) { throw sql; }

            finally
            {
                objcmd.Connection.Close();
            }

            return objListaDoc;
        }

    }
}